define(function(require, exports, module) {
	
	require("form");
	var validator = require("validator");
	
	module.exports = function() {
		var params = {};
		var row = {};
		return {
			//国际化
			data: {
				title:$.i18n.prop("sys.launcher.manager.add.title"),
				switcher: {
					on:$.i18n.prop("sys.yes"),
					off:$.i18n.prop("sys.no")
				},
				name:{
					label:$.i18n.prop("sys.launcher.manager.name"),
					placeholder:$.i18n.prop("sys.placeholder", [$.i18n.prop("sys.launcher.manager.name")])
				},
				module:{
					label:$.i18n.prop("sys.launcher.manager.module"),
					placeholder:$.i18n.prop("sys.placeholder", [$.i18n.prop("sys.launcher.manager.module")])
				},
				enable:{
					label:$.i18n.prop("sys.launcher.manager.enable"),
					value:"1"
				},
				manual:{
					label:$.i18n.prop("sys.launcher.manager.manual"),
					value:"1"
				},
				sort:{
					label:$.i18n.prop("sys.sort"),
					placeholder:$.i18n.prop("sys.placeholder", [$.i18n.prop("sys.sort")])
				},
				memo:{
					label:$.i18n.prop("sys.memo"),
					placeholder:$.i18n.prop("sys.placeholder", [$.i18n.prop("sys.memo")])
				},
				button:{
					reset: $.i18n.prop("sys.reset"),
					submit: $.i18n.prop("sys.submit")
				}
			},
			methods: {
				init: function(data) {
					var me = this;
					params = data;
					row = params.row;
					validator.blur($(this.$el).find("form"));
					this.reset();
					this.$nextTick(function() {
						this.loading("close");
					});
					return false;
				},
				reset: function() {
					$(this.$el).find("form").get(0).reset();
					$(this.$el).find("form").setFormValue(row);
					this.enable.value = row.enable ? "1" : "0";
					this.manual.value = row.manual ? "1" : "0";
					this.sort.value = row.sort;
				},
				submit : function() {
					var me = this;
					var form = $(this.$el).find("form");
					if(form.validate()) {
						this.loading();
						form.ajaxSubmit(function(data) {
							me.loading("close");
							if(data.success) {
								$.extend(row, data.message);
								params.update(row);
								me.closeWindow();
							}
						});
					}
				},
				destroy: function() {
					
				}
			}
		}
	}
});